package com.project.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.project.dto.AddInventoryDTO;
import com.project.dto.AdjustInventoryDTO;
import com.project.dto.InventoryQueryDTO;
import com.project.entity.Inventory;
import com.project.result.PageResult;
import com.project.vo.InventoryDetailVO;
import com.project.vo.InventoryListVO;
import com.project.vo.InventoryStatisticsVO;

public interface InventoryService extends IService<Inventory>{
    /**
     * 分页查询库存列表
     *
     * @return
     */
    PageResult<InventoryListVO> queryInventoryPage(InventoryQueryDTO queryDTO);

    /**
     * 根据材料ID获取库存信息
     *
     * @param materialId
     * @return
     */
    InventoryDetailVO getMaterialById(Integer materialId);

    /**
     * 先查询回显：根据库存ID获取库存信息
     *
     * @param inventoryId
     * @return
     */
    InventoryDetailVO getInventoryById(Integer inventoryId);

    /**
     * 再修改库存数量
     *
     * @param inventoryId
     */
    void updateInventoryById(Integer inventoryId, AdjustInventoryDTO inventoryDTO);

    /**
     * 获取库存统计信息
     *
     * @return
     */
    InventoryStatisticsVO getInventoryStatistics(Integer categoryId);

    /**
     * 新增库存信息
     *
     * @param addDTO
     * @return
     */
    boolean addInventory(AddInventoryDTO addDTO);
}